#ifndef MOVE_H
#define MOVE_H

// class for one chess move
/*

  */
class Move
{
public:
    Move();

    Move(const Move & move)
        : from(move.from), to(move.to),
          piece(move.piece), captured(move.captured),
          promotion(move.promotion), castling(move.castling)
    {
    }

    unsigned char from;
    unsigned char to;
    unsigned char piece;
    unsigned char captured;
    unsigned char promotion;
    unsigned char castling;

    void clear();
//    void setFrom(unsigned int from);
//    void setTosq(unsigned int tosq);
//    void setPiec(unsigned int piec);
//    void setCapt(unsigned int capt);
//    void setProm(unsigned int prom);
//    unsigned int getFrom();
//    unsigned int getTosq();
//    unsigned int getPiec();
//    unsigned int getCapt();
//    unsigned int getProm();
//    bool isWhitemove();
//    bool isBlackmove();
//    bool isCapture();
//    bool isKingcaptured();
//    bool isRookmove();
//    bool isRookcaptured();
//    bool isKingmove();
//    bool isPawnmove();
//    bool isPawnDoublemove();
//    bool isEnpassant();
//    bool isPromotion();
//    bool isCastle();
//    bool isCastleOO();
//    bool isCastleOOO();
};

#endif // MOVE_H
